The project aims to create a model that ages teen anime characters into seniors, and vice versa. In order to do so, we will use the CycleGAN, which is utilized in similar problems of other domains. It is notable to say that based on our research, this project is the first to tackle this specific problem in the anime characters domain.
We did not find a suitable labeled dataset which can be utilized. What we did find is a scraper by Lukeperson for the AnimeCharacters website, however we did heavy modifications to improve efficiency.
Moving forward, the images needed to pass by a face-cropper first to be usable by the model, since it was only interested in the face. For this issue, the croppers of Nagadomi and Katerina was utilized.
After these steps, the dataset that we had needed to be increased to make sure that the model was not overfitting. So multiple augmentation techniques where applied, such as flipping the images horizontally, and adjusting brightness and contrast.
Scrapped dataset example:
Cropped dataset example:
As mentioned, our problem statement is ageing and de-aging of anime characters. To achieve that, the input image should be a teen anime character, then the output should be an aged version of it. This is reversed when deaging as it should have a senior anime character as its input and it outputs a deaged version of it.
Since we found no existing models for aging and deaging anime characters, there are no state of the art models. However, we used an architecture that solved the same problem in humans, which is the CyclicGAN as it also came with the benefit of not requiring paired dataset.
The general CycleGan Architecture
Our specific GAN: Generator (Blue) and Discriminator (Pink)
Add all the model updates you made here, need as many images as you wish
As mentioned before, we did not have the dataset that we worked on. This dataset in itself is an update, since we needed to modify an existing scrapper, then crop it using two croppers, then augment it.
This can be considered in itself an independent update, as it can prove useful for future models which require large datasets of anime characters' faces.
In an attempt to find a model that works best for the domain at hand, we did a variety of hyperparameter tuning such as:
The original base model did not have a quantitative metric that evaluated the generated images. Therefore we had to intigrate the chosen quantitative metric in the code, which is the frechet inception distance.
The FID was introduced by Heusel et al. in 2017 and it uses “Inception v3 - 2015” pretrained model.
This metric aims to measure similarity between feature vectors of 2 groups of images, and is considered one of the most popular quantitative metrics for GANs.
Add your results here, add graphs and images to illustrate it. Compare your results to the original model and state of the art
Here you will detail the details related to training, for example:
We laid the foundation for the problem of anime character ageing, and we can confirm that the initial model is – as of now – one of the two best performing models. We have also noticed, visually, that some models reconstructed the original image perfectly, but failed to apply proper ageing.
In addition, while quantitative metrics are more time-efficient, they are not always the most reliable. We realized this from our work, since models with different FIDs appeared to have the same visual success level. Therefore, a balance should be stricken between both.
The model itself is the first step for Anime character ageing and de-aging. We suggest varying the cyclic-consistency loss further to give more weight to the Generator loss for better ageing and deageing.
Additionally, the dataset can be useful for anime-related models in general. Finally, integrating the FID in CycleGAN can be useful for other use cases with similar architecture.